The described technology generally relates to mapping of logical identifiers to physical identifiers.
Application programs such as a Web browser access resources using the HTTP protocol. The HTTP protocol uses a Uniform Resource Identifier (“URI”) to identify a resource to be accessed. A URI is either a Uniform Resource Locator (“URL”) or Uniform Resource Name (“URN”), or any other formatted string that identifies a network resource. URLs, as an example of URIs, are discussed in detail in T. Berners-Lee et al., Uniform Resource Locators (URL), RVC 1738, CERN, Xerox PARC, Univ. of Minn., December 1994. Each URL contains a domain name identifying where the resource is located. For example, the URL “http://www.odi.com/home.htm” indicates that the resource named “home.htm” is located at the domain of “odi.com.” The HTTP protocol uses an underlying transport layer such as TCP/IP to route messages to the computer associated with the domain name identified in the URL. The TCP/IP protocol, however, identifies computers using IP addresses (e.g., “128.32.0.6”) rather than domain names. Various computer techniques have been developed to map logical identifiers, such as domain names, to physical identifiers, such as IP addresses.
One such technique is implemented by the domain name service (“DNS”) that is provided as part of the TCP/IP protocol suite used by the Internet. DNS is a name service that maps domain names to IP addresses. When an application uses the HTTP protocol to send a message to a domain name, it at first requests a resolver program to resolve the domain name to its corresponding IP address. The resolver program accesses a hierarchy of domain name servers to resolve the domain name. The resolver program located at the computer where the application is executing requests a lowest-level domain name server to provide the IP address for the domain name. If that lowest-level domain name server does not have the IP address for that domain name, the domain name server forwards the request to the next higher-level domain name server. The request is propagated up the hierarchy of domain name servers until the IP address is found or until the authoritative domain name server for the first-level domain (e.g., “.com”) is located. The authoritative domain name server maintains a mapping from the domain names to the IP addresses for all the domain names that have been registered for that first-level domain. The domain name servers that are lower in a hierarchy use a caching mechanism to maintain mappings from domain names to IP addresses that are provided by the authoritative domain name server. When a domain name is registered, it is assigned an IP address and a table of the authoritative domain name server is updated to reflect the mapping of that domain name to the IP address. The maintaining of mappings from domain names to IP addresses is provided by an administrative function of the authoritative domain name server. A user at the authoritative domain name server uses the administrative function to maintain the mappings.
A difficulty with the architecture of DNS is that the mapping of domain names to IP addresses is changed by an administrator at the authoritative domain name server. Another difficulty with the architecture is that a domain name maps to a single IP address. It would be desirable to have a technique for mapping logical identifiers to physical identifiers without the difficulties associated with DNS.